package com.biz.primus.ms.coupon.service;

import com.biz.primus.model.coupon.vo.coupon.CouponVo;
import com.biz.primus.model.coupon.vo.coupon.UserCouponListVo;
import com.biz.primus.model.coupon.vo.coupon.request.CreateCouponReqVo;
import com.biz.primus.model.coupon.vo.coupon.request.GetCouponCutAmountReqVo;
import com.biz.primus.model.coupon.vo.coupon.request.GetOrderProductAvailableCouponReqVo;
import com.biz.primus.model.coupon.vo.coupon.request.UseCouponReqVo;
import java.util.List;

/**
 * CouponService
 *
 * @author david-liu
 */
public interface CouponService {

    Boolean createCoupon(CreateCouponReqVo reqVo);

    UserCouponListVo listUserCoupons(Long userId);

    List<CouponVo> getCoupons4OrderProducts(GetOrderProductAvailableCouponReqVo reqVo);

    Integer getCouponCutAmount4OrderProducts(GetCouponCutAmountReqVo reqVo);

    void useCoupon(UseCouponReqVo reqVo);
}
